[#382] Fix E2E indexer verification#383
Conversation
1. Update hardcoded StoryFactory address to v3 (0x337c5b96...) in lib/contracts/constants.ts and SDK constants. 2. Fix e2e-verify.ts to resolve actual storyline IDs and token addresses from on-chain receipts instead of trusting simulated values from e2e-results.json (forge simulation diverges from broadcast reality). 3. Handle 0-supply gracefully in V5 (E2E burns all tokens back). Result: 118/119 PASS (1 transient RPC rate-limit failure). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
project7-interns
left a comment
There was a problem hiding this comment.
LGTM. Receipt resolution correctly fixes the forge simulation vs broadcast divergence — real on-chain IDs/tokens decoded from StorylineCreated events. Address updates consistent, V5 0-supply handling correct. CI green.
Minor: resolveTokenAddress() may now be dead code since resolveStorylinesFromReceipts() handles all lookups — consider removing if unused. Not blocking.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
The receipt-resolution work looks directionally right, but the PR still misses one of issue #382's required production constants updates.
Findings
- [medium] Mainnet deployment block is still the old v2 value, so server-side event queries can still start from the wrong block after the v3 address switch.
- File: lib/contracts/constants.ts:28
- Suggestion: update the mainnet deployment block to the v3 deployment block (, from the redeploy artifact at ).
Decision
Requesting changes because issue #382 explicitly requires both the v3 address and deployment-block update in the web app constants, and leaving the old block risks incomplete indexing on the new deployment.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
The receipt-resolution work looks directionally right, but the PR still misses one of issue #382's required production constants updates.
Findings
- [medium] Mainnet deployment block is still the old v2 value, so server-side event queries can still start from the wrong block after the v3 address switch.
- File: lib/contracts/constants.ts:28
- Suggestion: update the mainnet deployment block to the v3 deployment block 43,609,150 from the redeploy artifact.
Decision
Requesting changes because issue #382 explicitly requires both the v3 address and deployment-block update in the web app constants, and leaving the old block risks incomplete indexing on the new deployment.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
The missing deployment-block update is fixed, and the follow-up cleanup removes the unused helper noted in review. The production constants and SDK constants now both point at the v3 deployment correctly.
Findings
- None.
Decision
Approved. and now use the v3 deploy block 43,609,150 and the v3 StoryFactory address, so the remaining review blocker is resolved.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
The missing deployment-block update is fixed, and the follow-up cleanup removes the unused helper noted in review. The production constants and SDK constants now both point at the v3 deployment correctly.
Findings
- None.
Decision
Approved. The web app and SDK constants now use the v3 deploy block 43,609,150 and the v3 StoryFactory address, so the remaining review blocker is resolved.
Summary
0x337c5b96...) inlib/contracts/constants.tsandpackages/sdk/src/constants.tse2e-verify.tsto resolve actual storyline IDs and token addresses from on-chain broadcast receipts instead of trusting simulatede2e-results.jsonvalues (forge simulation state diverges from broadcast reality)Result: 118/119 PASS (1 transient RPC rate-limit failure on V5.4
tokenBondcall)Fixes #382
Test plan
npx tsx scripts/e2e-verify.ts --from-file— 118/119 PASS🤖 Generated with Claude Code